package com.academico.web.servlet.curso;

import java.io.IOException;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.academico.dao.CursoDAO;
import com.academico.model.Curso;
import com.academico.util.Util;
import com.academico.web.servlet.BaseServlet;

public class SaveCursoServlet extends BaseServlet {

	private static final long serialVersionUID = -2478316631659888725L;

	@Override
	public void processRequest(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		
		List<String> erros = new ArrayList<String>();
		
		String nomeCurso = request.getParameter("nomeCurso");
		Date dataCriacao = Util.createSimpleDate(request.getParameter("dataCriacao"), "dd/MM/yyyy");
		Date dataAutorizacao = Util.createSimpleDate(request.getParameter("dataAutorizacao"), "dd/MM/yyyy");
		Date dataReconhecimento = Util.createSimpleDate(request.getParameter("dataReconhecimento"), "dd/MM/yyyy");
		
		Integer cargaHoraria = Util.convertStringToInteger(request.getParameter("cargaHoraria")) ;
		
		if(Util.isBlankOrNull(nomeCurso) ){
			erros.add("Nome do curso invalido!");
		}
		if(Util.isNull(cargaHoraria)){
			erros.add("Carga horaria invalida!");
		}
		
		if(Util.isNull(dataCriacao)){
			erros.add("Data de criacao invalida!");
		}
		if(Util.isNull(dataAutorizacao)){
			erros.add("Data de autorizacao invalida!");
		}
		if(Util.isNull(dataReconhecimento)){
			erros.add("Data de reconhecimento invalida!");
		}
		
		if(erros.size() == 0){
			saveCruso(nomeCurso, dataCriacao, dataAutorizacao, dataReconhecimento, cargaHoraria);
			setAttributeToRequest(request, "message", "Sucesso na operacao");
		} else {
			setAttributeToRequest(request, "errors", erros);
		}
		forward("curso", request, response);
	}

	private void saveCruso(String nomeCurso, Date dataCriacao, Date dataAutorizacao, Date dataReconhecimento, Integer cargaHoraria) {
		Curso curso = new Curso();
		curso.setNomeCurso(nomeCurso);
		curso.setDataCriacao(dataCriacao);
		curso.setDataAutorizacao(dataAutorizacao);
		curso.setDataReconhecimento(dataReconhecimento);
		curso.setCargaHoraria(cargaHoraria);
		curso.setSituacaoCurso(Curso.SituacaoCurso.ATIVO);

		CursoDAO cursoDAO = new CursoDAO();
		cursoDAO.save(curso);
	}
	
//	public static void main(String[] args) {
//		SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy");
//		SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy/MM/dd");
//		Date date = null;
//		try {
//			date = sdf.parse("21/11/1984");
//		} catch (ParseException e) {
//			e.printStackTrace();
//		}
//		
//		System.out.println(date.toString());
//		System.out.println(sdf2.format(date));
//	}

}
